home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Examples / Demos / Array 4 < prev    next >
Lisp/Scheme  |  1998-10-26  |  5KB  |  405 lines

  1. ;;; Song - movement VI from Array for solo violin
  2. ; by Nigel Morgan
  3. ; to analyze the score double-click high-lighted keywords
  4.  
  5. ;; material
  6.  
  7. (setq fig '(a -b -e -c -d -g)) 
  8. (setq fig0 (append '(=) fig '(=)))
  9. (setq figcd '(= = -g -d -c -e -b a)) ; coda
  10. (setq figx '(a = = -b -e -c -d -g)) ; rhythmic version 
  11.  
  12. (setq frh '(1/4. 1/8 1/8 1/8 1/8 1/8))
  13. (setq frh0 (append '(1/4) frh '(1/4)))
  14. (setq frhcd (mapcar 'get-tick 
  15.                     '(1/4 1/4-5 1/4-5 1/4-5 1/4-5 1/4-5 1/4. 1/8)))
  16.  
  17. (setq fdy '(0 70 62 54 64 52 44 0))
  18.  
  19. ;; definitions
  20.  
  21. (initdef)
  22.  
  23. (defsym a  '(= = -b))
  24. (defsym -b '(-e -c))
  25. (defsym -e '(-c -d))
  26. (defsym -c '(-d -g a))
  27. (defsym -d '(-g a = =))
  28. (defsym -g '(a = = -b))
  29.  
  30. ;; verse
  31.  
  32. (setq fig1 (gen-trans a 4)
  33.       fig2 (gen-trans -b 4)
  34.       fig3 (gen-trans -e 4)
  35.       fig4 (gen-trans -c 4)
  36.       fig5 (gen-trans -d 4)
  37.       fig6 (gen-trans -g 4)
  38. )
  39.  
  40. (def-neuron rhythms
  41.   (in 1 '(b -b c b b b -c e)) (cons-n '1/32 8)
  42.   (in 1 '(d -b -d e)) (cons-n '1/32 4)   
  43.   (otherwise '1/16))
  44.  
  45. ;; chorus
  46.  
  47. (setq figr1 (append '(=) (symbol-scroll -1 fig) '(=))
  48.       figr2 (append '(=) (symbol-scroll -2 fig) '(=))
  49.       figr3 (append '(=) (symbol-scroll -3 fig) '(=))
  50.       figr4 (append '(=) (symbol-scroll -4 fig) '(=))
  51.       figr5 (append '(=) (symbol-scroll -5 fig) '(=)) 
  52. )  
  53.  
  54. (setq frh1 (append '(1/4) (symbol-scroll -1 frh) '(1/4))
  55.       frh2 (append '(1/4) (symbol-scroll -2 frh) '(1/4))
  56.       frh3 (append '(1/4) (symbol-scroll -3 frh) '(1/4))
  57.       frh4 (append '(1/4) (symbol-scroll -4 frh) '(1/4))
  58.       frh5 (append '(1/4) (symbol-scroll -5 frh) '(1/4))      
  59. )
  60.   
  61. ;; score
  62.         
  63. (def-tonality
  64.   violin (activate-tonality (chromatic a& 5))
  65. )
  66.  
  67. (def-symbol
  68.   violin (list fig0 fig1 
  69.                figr1 fig2 
  70.                figr2 fig3 
  71.                figr3 fig4 
  72.                figr4 fig5 
  73.                figr5 fig6 
  74.                figcd)
  75.  
  76. )
  77.  
  78. (def-length
  79.   violin (symbol-interleave 
  80.           (list frh0 frh1 
  81.                 frh2 frh3 
  82.                 frh4 frh5 
  83.                 frhcd)
  84.           (mapcar 
  85.            (function (lambda (x) 
  86.                        (run-neuron 'rhythms x))) 
  87.            (list fig1 fig2 
  88.                  fig3 fig4 
  89.                  fig5 fig6)))                       
  90. )
  91.  
  92. (def-zone
  93.   violin (mapcar 'make-zone (get-lengths-of 'violin))
  94. )
  95.  
  96. (def-velocity
  97.   violin (symbol-interleave 
  98.           (cons-n fdy 7)   
  99.           (gen-process 
  100.            '(vector-to-list 
  101.              (vector-round 36 70 
  102.                            (gen-noise-white x y)))
  103.            (delete '8 
  104.                    (mapcar 'length 
  105.                            (get-symbols-of 'violin))) nil :list)) 
  106. )
  107.  
  108. (def-channel 
  109.  violin 1
  110. )
  111.  
  112. (def-program gm-sound-set
  113.  violin violin
  114. )
  115.  
  116. (def-tempo 70)
  117.  
  118. (midiport :printer)
  119.  
  120. (compile-instrument-p "ccl;output:" "Array 4 midi"
  121.   violin
  122. )
  123.  
  124. #|  
  125.  
  126. (listdef a 4)
  127.  
  128.  a
  129.   =
  130.   =
  131.   -b
  132.     -e
  133.       -c
  134.         -d
  135.         -g
  136.         a
  137.       -d
  138.         -g
  139.         a
  140.         =
  141.         =
  142.     -c
  143.       -d
  144.         -g
  145.         a
  146.         =
  147.         =
  148.       -g
  149.         a
  150.         =
  151.         =
  152.         -b
  153.       a
  154.         =
  155.         =
  156.         -b
  157. nil
  158.  
  159. (listdef -b)
  160.  
  161. -b
  162.   -e
  163.     -c
  164.       -d
  165.         -g
  166.         a
  167.         =
  168.         =
  169.       -g
  170.         a
  171.         =
  172.         =
  173.         -b
  174.       a
  175.         =
  176.         =
  177.         -b
  178.     -d
  179.       -g
  180.         a
  181.         =
  182.         =
  183.         -b
  184.       a
  185.         =
  186.         =
  187.         -b
  188.       =
  189.       =
  190.   -c
  191.     -d
  192.       -g
  193.         a
  194.         =
  195.         =
  196.         -b
  197.       a
  198.         =
  199.         =
  200.         -b
  201.       =
  202.       =
  203.     -g
  204.       a
  205.         =
  206.         =
  207.         -b
  208.       =
  209.       =
  210.       -b
  211.         -e
  212.         -c
  213.     a
  214.       =
  215.       =
  216.       -b
  217.         -e
  218.         -c
  219. nil
  220.  
  221. (listdef -e 4)
  222.  
  223.  -e
  224.   -c
  225.     -d
  226.       -g
  227.         a
  228.         =
  229.         =
  230.         -b
  231.       a
  232.         =
  233.         =
  234.         -b
  235.       =
  236.       =
  237.     -g
  238.       a
  239.         =
  240.         =
  241.         -b
  242.       =
  243.       =
  244.       -b
  245.         -e
  246.         -c
  247.     a
  248.       =
  249.       =
  250.       -b
  251.         -e
  252.         -c
  253.   -d
  254.     -g
  255.       a
  256.         =
  257.         =
  258.         -b
  259.       =
  260.       =
  261.       -b
  262.         -e
  263.         -c
  264.     a
  265.       =
  266.       =
  267.       -b
  268.         -e
  269.         -c
  270.     =
  271.     =
  272. nil
  273.  
  274. (listdef -c 4)
  275.  
  276.  -c
  277.   -d
  278.     -g
  279.       a
  280.         =
  281.         =
  282.         -b
  283.       =
  284.       =
  285.       -b
  286.         -e
  287.         -c
  288.     a
  289.       =
  290.       =
  291.       -b
  292.         -e
  293.         -c
  294.     =
  295.     =
  296.   -g
  297.     a
  298.       =
  299.       =
  300.       -b
  301.         -e
  302.         -c
  303.     =
  304.     =
  305.     -b
  306.       -e
  307.         -c
  308.         -d
  309.       -c
  310.         -d
  311.         -g
  312.         a
  313.   a
  314.     =
  315.     =
  316.     -b
  317.       -e
  318.         -c
  319.         -d
  320.       -c
  321.         -d
  322.         -g
  323.         a
  324. nil
  325.  
  326. (listdef -d 4)
  327.  
  328. -d
  329.   -g
  330.     a
  331.       =
  332.       =
  333.       -b
  334.         -e
  335.         -c
  336.     =
  337.     =
  338.     -b
  339.       -e
  340.         -c
  341.         -d
  342.       -c
  343.         -d
  344.         -g
  345.         a
  346.   a
  347.     =
  348.     =
  349.     -b
  350.       -e
  351.         -c
  352.         -d
  353.       -c
  354.         -d
  355.         -g
  356.         a
  357.   =
  358.   =
  359. nil
  360.  
  361. (listdef -g 4)
  362.  
  363.  -g
  364.   a
  365.     =
  366.     =
  367.     -b
  368.       -e
  369.         -c
  370.         -d
  371.       -c
  372.         -d
  373.         -g
  374.         a
  375.   =
  376.   =
  377.   -b
  378.     -e
  379.       -c
  380.         -d
  381.         -g
  382.         a
  383.       -d
  384.         -g
  385.         a
  386.         =
  387.         =
  388.     -c
  389.       -d
  390.         -g
  391.         a
  392.         =
  393.         =
  394.       -g
  395.         a
  396.         =
  397.         =
  398.         -b
  399.       a
  400.         =
  401.         =
  402.         -b
  403. nil            
  404.  
  405. |#